package com.multimedia.scala.euler

import scala.annotation.tailrec
/*
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows:

	21 22 23 24 25
	20  7  8  9 10
	19  6  1  2 11
	18  5  4  3 12
	17 16 15 14 13

It can be verified that the sum of the numbers on the diagonals is 101.

What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral formed in the same way?
 */
object Asd28 {
    def main(args : Array[String]) : Unit = {
        def spiralDiagonal(size: Int) = {
            @tailrec
            def next(last: Int = 1, iteration: Int = 2, sum: Int = 1): Int = {
                if (iteration+1>size) return sum
                val elements = (1 to 4).map(iteration*).map(last+)
                next(elements.last, iteration + 2, sum + elements.sum)
            }
            next()
        }

        println(spiralDiagonal(1001))
    }
}
